#!/bin/bash

# 简单部署脚本 - 本地构建，上传到服务器
set -e

echo "============================================"
echo "开始部署博客系统（简单模式）"
echo "============================================"

# 颜色定义
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

# 配置信息
SERVER="lighthouse@101.34.207.228"
REMOTE_DIR="/home/lighthouse/apps/blog_project"
NGINX_BLOG_DIR="/usr/share/nginx/html/blog"

# 步骤1: 构建前端
echo -e "\n${YELLOW}[1/4] 构建前端...${NC}"
cd frontend

if [ ! -d "node_modules" ]; then
    echo "安装依赖..."
    npm install
fi

echo "开始构建..."
npm run build

if [ ! -d "dist" ]; then
    echo -e "${RED}错误: dist 目录不存在${NC}"
    exit 1
fi

echo -e "${GREEN}✓ 前端构建完成${NC}"

# 回到项目根目录
cd ..

# 步骤2: 上传文件到服务器
echo -e "\n${YELLOW}[2/4] 上传文件到服务器...${NC}"

# 创建必要的目录
ssh ${SERVER} "mkdir -p ${REMOTE_DIR}"

# 上传整个项目（但不包含 node_modules, venv 等）
rsync -avz --exclude 'node_modules' --exclude 'venv' --exclude '.git' \
    --exclude '__pycache__' --exclude '*.pyc' --exclude '.env' \
    ./ ${SERVER}:${REMOTE_DIR}/

echo -e "${GREEN}✓ 文件上传完成${NC}"

# 步骤3: 部署前端到 Nginx
echo -e "\n${YELLOW}[3/4] 部署前端到 Nginx...${NC}"

ssh ${SERVER} << 'ENDSSH'
    # 创建前端目录
    sudo mkdir -p /usr/share/nginx/html/blog
    
    # 复制前端文件
    sudo cp -r /home/lighthouse/apps/blog_project/frontend/dist/* /usr/share/nginx/html/blog/
    
    # 设置权限
    sudo chown -R nginx:nginx /usr/share/nginx/html/blog
    sudo chmod -R 755 /usr/share/nginx/html/blog
ENDSSH

echo -e "${GREEN}✓ 前端已部署到 Nginx${NC}"

# 步骤4: 部署后端（不使用 Docker，直接用 Python）
echo -e "\n${YELLOW}[4/4] 部署后端服务...${NC}"

ssh ${SERVER} << 'ENDSSH'
    cd /home/lighthouse/apps/blog_project/backend
    
    # 创建虚拟环境（如果不存在）
    if [ ! -d "venv" ]; then
        python3 -m venv venv
    fi
    
    # 激活虚拟环境并安装依赖
    source venv/bin/activate
    pip install -q -r requirements.txt
    
    # 启动后端服务（后台运行）
    # 停止旧的进程（如果存在）
    pkill -f "uvicorn main:app" || true
    
    # 启动新进程
    nohup uvicorn main:app --host 0.0.0.0 --port 8001 > /tmp/blog-backend.log 2>&1 &
    
    echo "后端服务已启动，日志: /tmp/blog-backend.log"
ENDSSH

echo -e "${GREEN}✓ 后端服务已启动${NC}"

echo -e "\n============================================"
echo -e "${GREEN}部署完成！${NC}"
echo "============================================"
echo -e "前端地址: ${GREEN}http://peter-pan.website/blog${NC}"
echo -e "API地址: ${GREEN}http://peter-pan.website/api${NC}"
echo -e "API文档: ${GREEN}http://peter-pan.website/api/docs${NC}"
echo ""
echo "后续需要修改 Nginx 配置，添加 /blog 和 /api 路由"
echo "参考: nginx-blog-addon.conf"
echo "============================================"

